package csl.bluetooth.tools.utils;

import java.util.Arrays;
import java.util.List;

/**
 * 字符串工具
 */
public class StringUtils {

    /**
     * bytes数组转为十六进制字符串
     * @param bytes byte数组
     * @return 十六进制字符串
     */
    public static String bytesToHex(List<Byte> bytes){
        StringBuilder sb = new StringBuilder();
        for (Byte aByte : bytes) {
            String hex = Integer.toHexString(aByte & 0xFF);
            if (hex.length() < 2) {
                sb.append(0);
            }
            sb.append(hex);
        }
        return sb.toString().trim();
    }

    /**
     * 十六进制字符串转byte数组
     *
     * @param tagStr 十六进制字符串
     * @return byte数组
     */
    public static byte[] hexStrToBytes(String tagStr) {
        if (null == tagStr || "".equals(tagStr.trim())) {
            return new byte[0];
        }
        byte[] bytes = new byte[tagStr.length() / 2];
        String hex;
        for (int i = 0; i < tagStr.length() / 2; i++) {
            hex = tagStr.substring(i * 2, i * 2 + 2);
            bytes[i] = (byte) Integer.parseInt(hex, 16);
        }
        return bytes;
    }

    /**
     * 取出资产编号
     * @param s s
     * @return 返回资产编号
     */
    public static String toAssetNum(String s){
        Arrays.toString(s.split("/[/]"));
        if (isSet(s)){
            char c = s.charAt(1);
            int len= Integer.parseInt(String.valueOf(c));
            return s.substring(2, 2 + 2 * len);
        }else {
            return s;
        }
    }

    /**
     * 是否已写入
     * @param s
     * @return
     */
    public static boolean isSet(String s){
        return s.charAt(1) == '4';
    }
}
